package fr.afcepf.ai89.esharing.data;

import java.util.Date;
import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import fr.afcepf.ai89.esharing.entity.Aem;
import fr.afcepf.ai89.esharing.entity.Valeur;

@Stateless
public class DAOValeur implements IDAOValeur {

	@PersistenceContext(unitName = "ESharingPhase22")
	EntityManager em;
	
	@Override
	public Valeur getValeur(int idValeur) {

		Query hql = em.createQuery("SELECT val from Valeur WHERE val.idValeur = :idVal");
		hql.setParameter("idVal", idValeur);
		return (Valeur) hql.getSingleResult();

	}

	@Override
	public List<Valeur> getValeurs() {
		
		Query hql = em.createQuery("SELECT val from Valeur");
		return hql.getResultList();
		
	}

	@Override
	public List<Valeur> getValeurs(Aem aem) {
		
		Query hql = em.createQuery("SELECT v FROM Valeur v "
				+ "WHERE v.aem.idAem = :paramIdAem" );
				
		hql.setParameter("paramIdAem", aem.getIdAem());
		List<Valeur> ficheValeurs= hql.getResultList();
		return ficheValeurs;
		
	}

	@Override
	public int valoriser(Valeur valeur) {

		valeur.setDateActualisationValeur(new Date());
		em.persist(valeur);
		
		Query hql = em.createQuery("SELECT MAX(idValeur) FROM Valeur val");
		int idVal = (Integer)hql.getSingleResult();
		
		return idVal;

	}

}
